package com.gxa.user.utils;

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.*;


/**
 * @author 阔爱又迷人的川锅锅呀
 */
public class StringUtil {


    /**
     * 获取文件的后缀
     *
     * @param fileName
     * @return
     */
    public static String getExt(String fileName) {
        if (fileName == null || fileName.isEmpty() || !fileName.contains(".")) {
            return null;
        }
        // 找最后一个. 的位置
        int index = fileName.lastIndexOf(".");
        return fileName.substring(index + 1);
    }

    /**
     * 判断后缀是否符合条件
     *
     * @param allowExts : 允许的后缀
     * @param fileName  :文件名
     * @return
     */
    public static Boolean checkExt(String allowExts, String fileName) {
        // allowExts:  jpg|png|gif
        String ext = getExt(fileName);
        // 全部转小写字母
        ext = ext.toLowerCase();
        if (ext == null) {
            return false;
        }
        if (allowExts.contains(ext)) {
            return true;
        }
        return false;
    }


    /**
     * 获取时间文件夹
     *
     * @return
     */
    public static String getDatePath() {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd");
        return simpleDateFormat.format(new Date());
    }


    /**
     * 创建文件夹
     *
     * @param dirPath
     */
    public static void createDirs(String dirPath) {
        File file = new File(dirPath);
        if (!file.exists()) {
            file.mkdirs();
        }

    }

    /**
     * 字符串数组去重
     *
     * @param arr
     * @return {@link String[]}
     * @author 蔚枫
     * @date 2021/2/23 18:00
     */
    public static String[] threeClear(String[] arr) {
        List list = Arrays.asList(arr);
        Set set = new HashSet(list);
        String[] rid = (String[]) set.toArray(new String[0]);
        return rid;
    }

    /**
     * 去重,且将重复字段添加在数组最后
     * 没有重，就在最后扩容添加
     *
     * @param spit
     * @param pid
     * @return {@link String[]}
     * @author 蔚枫
     * @date 2021/2/23 20:19
     */
    public static String[] clear(String spit, String pid) {

        String[] sid = {pid};
        // 切割
        String[] arr = spit.split("-");
        // 查找是否有重复的
        int index = -1;
        // 找删除元素 的下标
        for (int i = 0; i < arr.length; i++) {
            if (arr[i].equals(pid)) {
                index = i;
            }
        }
        // 没有重复的
        if (index == -1) {
            // 扩容
            String[] tmp1 = new String[arr.length + 1];
            System.arraycopy(arr, 0, tmp1, 0, arr.length);
            System.arraycopy(sid, 0, tmp1, arr.length, 1);
            return tmp1;
        }
        // 有重复的
        // 复制第一段
        String[] tmp1 = Arrays.copyOfRange(arr, 0, index);
        // 复制第二段
        String[] tmp2 = Arrays.copyOfRange(arr, index + 1, arr.length);
        // 准备一个新的数组
        String[] namesTmp = new String[tmp1.length + tmp2.length + 1];
        System.arraycopy(tmp1, 0, namesTmp, 0, tmp1.length);
        System.arraycopy(tmp2, 0, namesTmp, tmp1.length, tmp2.length);
        System.arraycopy(sid, 0, namesTmp, tmp1.length + tmp2.length, sid.length);
        return namesTmp;
    }

    /**
     * 数组转字符串，-间隔符
     *
     * @param arr
     * @return
     */
    public static String myStringArray(String[] arr) {
        String us = String.valueOf(arr);
        String ps = "";
        for (int i = 0; i < arr.length; i++) {
            if (i == 0) {
                ps = ps + arr[i];
                continue;
            }
            ps = ps + "-" + arr[i];
        }
        return ps;

    }

}
